// pages/goods_list/index.js
import { request } from '../../request/index.js';
import regeneratorRuntime from '../../lib/runtime/runtime';
/* 用户上滑页面 滚动条触底 开始加载下一页数据
1 找到滚动条触发事件
2 判断还有没有下一页 获取数据总页数(总页数=Math.ceil(总条数total/页条量)) 当前的页面pagenum 
判断 当前页面 大于等于？ 数据总页数
2 没有 弹出提示 有 加载下一页数据 */

/* 下拉刷新
1 触发下拉刷新事件
2 重置数据 数组
2 重置页面 设置为1
3 重新发送请求 
4 数据请求回来，需要手动关闭等待效果*/
Page({

  /**
   * 页面的初始数据
   */
  data: {
    tabs:[
      {
        id:0,
        value:'综合',
        isActive:true
      },
      {
        id:1,
        value:'销量',
        isActive:false
      },
      {
        id:2,
        value:'价格',
        isActive:false
      }
    ],
    goodsList:[]
  },
  // 接口要的参数
  QueryParams:{
    query:'',
    cid:'',
    pagenum:1,
    pagesize:10
  },
  // 总页数
  totalPages:1,
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.QueryParams.cid=options.cid;
    this.getGoodsList();
   
  },
  // 获取商品列表数据
  async getGoodsList(){
    const res = await request({url:'/goods/search',data:this.QueryParams});
    // console.log(res);
    // 获取总条数
    const total=res.total;
    // 计算总页数
    this.totalPages=Math.ceil(total/this.QueryParams.pagesize);
    // console.log(this.totalPages);
    this.setData({
      // 拼接数组
      goodsList:[...this.data.goodsList,...res.goods]
    }),
    // 关闭下拉刷新的窗口
    wx.stopPullDownRefresh();
  },
  // 标题的点击事件 从子组件传递过来
  handleTabsItemChange(e){
    // console.log(e);
    // 1 获取被点击的标题索引
    const {index} = e.detail;
    // 2 修改原数组
    let {tabs} = this.data;
    tabs.forEach((v,i)=>i===index?v.isActive=true:v.isActive=false);
    // 3 复制到data中
    this.setData({
      tabs
    })
  },
  // 页面赏花 滚动条触底事件
  onReachBottom(){
    // console.log('页面触底');
    // 1 判断是否有下一页数据
    if(this.QueryParams.pagenum>=this.totalPages){
      wx.showToast({
        title: '没有下一页数据了',
        icon:'none'
      });
        
    }else{
     this.QueryParams.pagenum++;
     this.getGoodsList();
    }
  },
  // 下拉刷新事件
  onPullDownRefresh(){
    // 1、重置数组
    this.setData({
      goodsList:[]
    })
    // 2、重置页码
    this.QueryParams.pagenum=1;
    // 3、重新发送请求
     this.getGoodsList();
  }
})